package point;

/**题目：反转单词
 * y: i am busy.  -->  i ma .ysub
 * @Author Gavin
 * @date 2022.01.10 22:36
 */
public class solution_3 {
    /**
     * 解题思路：使用两个游标进行移动
     * 当快游标移动到空格或者字符串长度的时候就翻转游标之间的单词
     */
    public static String solution(String s){
        if(s==null||s.length()==0)return s;
        char[] c=s.toCharArray();
        int start=0,end=0;
        while (start<c.length){
            while (end<c.length&&c[end]!=' ')++end;
            //注意，假如start,end指向的都为'',那么就会跳过这个for循环然后跳过这个空串
            for (int i = start,j=end-1; i < j; i++,--j) {
                char tmp=c[i];
                c[i]=c[j];
                c[j]=tmp;
            }
            start=end+1;//假如开头为' '的时候就会跳过，start=end+1会跳过这个空串
            end=start;
        }
        return new String(c);
    }

    public static void main(String[] args) {
        System.out.println(solution("  abc"));
    }
}
